1. Field of the Invention
The present invention relates to techniques for algorithmic trading. Particularly, the invention is directed to methods, languages, and systems for parallel algorithmic trading; it significantly enhances the ability of a trader to trade a wide set of financial instruments simultaneously and also allows market regulators to implement effective trading supervision.
2. Description of Related Art
Algorithmic or automated trading has become the most common type of trading in electronic financial markets around the world. More than ⅔ of all NYSE transactions were made electronically in 2009. Algorithmic trading relies on the speed of                receiving and decoding market data messages;        making and processing trading decisions.Thus, there is a need to increase trading functionality with hardware and software solutions available to electronic traders.        
The first step of algorithmic trading—receiving and decoding market data messages—can be improved by using parallel processing of messages sent by Exchange servers. For example, U.S. Pat. No. 7,668,840 discloses a system and method for configuring plurality of processing nodes into a parallel-processing database system. U.S. Pat. No. 7,512,660 discloses message handling method based on plurality of conversation threads acting in parallel and asynchronously. A leading market data provider—Thomson Reuters—uses two 4-core Intel processors in parallel to convert market data messages into price quotes and other trading information.
However, these approaches are not satisfactory when trading activity of exchange markets reaches a million market data messages per second or higher. The resulting delays in data feed are absolutely unacceptable from trading point of view.
The second step of algorithmic trading—making and processing trading decisions—can be improved by using parallel processing as well. For example, U.S. Pat. No. 7,613,647 discloses a system for executing trades of securities based on a network of several servers. Each server is programmed with a specific trading algorithm and receives trade orders and executes them according to the trading algorithm programmed therein. U.S. Pat. No. 7,047,232 discloses a system and a method for parallelizing applications of script-driven software tools. The system has a capability of using multiple processors in parallel for substantial improvements in overall “throughput”. MATLAB, SAS, and some other software products provide library functions for fast parallel computing by blocks of threads running on NVIDIA video card with hundreds of coprocessors.
However, these solutions are aimed for working with one or very few trading instruments. There is no language or system support for algorithmic trading which would deal with hundreds or thousands of the instruments simultaneously.
Another known problem in electronic trading is “gaming”—attempts to manipulate a security's price or entire market by artificially generated price swings. U.S. Pat. App. No. 20090125447 discloses a method for mitigating such effects.
However, this method is limited to a narrow problem of eliminating the price spikes. There is a need in a more general tool for anti-gaming supervision.
Accordingly, there is a need in a high performance method, a flexible language, and a powerful system for parallel algorithmic trading of thousands of financial instruments simultaneously and for overseeing of trading activity.